package com.ccp.dev.core.basic.internationalization;

import com.ccp.dev.core.basic.base.BaseController;
import com.ccp.dev.core.basic.response.ResultData;

import javax.annotation.Resource;

/**
 * 系统管理 基础controller
 * @author nd
 */
public class SysBaseController extends BaseController {

    /**
     * layUI中 0-成功
     */
    private static final int  LAY_UI_SUCCESS = 0;
    /**
     * layUI中 1-失败
     */
    private static final int  LAY_UI_ERROR = 1;

    @Resource
    protected LocaleMessageSource localeMessageSource;

    /**
     * 运行正确时调用的方法
     * @param messageKey 配置文件中的key值
     * @param count 总数据条数
     * @param object 返回的数据
     * @return ResultData
     */
    protected ResultData getResultDataSuccess(String messageKey, long count, Object object){
        return new ResultData(LAY_UI_SUCCESS,localeMessageSource.getMessage(messageKey),count,object);
    }

    /**
     * 运行正确时调用的方法
     * @param messageKey 配置文件中的key值
     * @return ResultData
     */
    protected ResultData getResultDataSuccess(String messageKey){
        return new ResultData(LAY_UI_SUCCESS,localeMessageSource.getMessage(messageKey),0L,null);
    }

    /**
     * 运行正确时调用的方法
     * @param messageKey 配置文件中的key值
     * @param object 返回的数据
     * @return ResultData
     */
    protected ResultData getResultDataSuccess(String messageKey, Object object){
        return new ResultData(LAY_UI_SUCCESS,localeMessageSource.getMessage(messageKey),0L,object);
    }


    /**
     * 运行错误时调用的方法
     * @param messageKey 配置文件中的key值
     * @param count 总数据条数
     * @param object 返回的数据
     * @return ResultData
     */
    protected ResultData getResultDataError(String messageKey,long count,Object object){
        return new ResultData(LAY_UI_ERROR,localeMessageSource.getMessage(messageKey),count,object);
    }

    /**
     * 运行错误时调用的方法带参数
     *
     * @param messageKey 配置文件中的key值
     * @param params     参数数组
     * @return ResultData
     */
    protected ResultData getResultDataErrorParam(String messageKey, Object[] params) {
        return new ResultData(LAY_UI_ERROR, localeMessageSource.getMessage(messageKey,params),0L, null);
    }

    /**
     * 运行错误时调用的方法
     * @param messageKey 配置文件中的key值
     * @return ResultData
     */
    protected ResultData getResultDataError(String messageKey){
        return new ResultData(LAY_UI_ERROR,localeMessageSource.getMessage(messageKey),0L,null);
    }

    /**
     * 运行错误时调用的方法
     * @param code 自定义返回code值
     * @param messageKey 配置文件中的key值
     * @return ResultData
     */
    protected ResultData getResultDataError(int code,String messageKey){
        return new ResultData(code,localeMessageSource.getMessage(messageKey),0L,null);
    }
}
